﻿/**
 *
 * @file OperAbstractJunction.h
 * @brief  用于表格的连接操作器抽象类声明
 * @author wangning (2185896382@qq.com)
 * @date 2024-12-25
 *
 */
#ifndef _OPER_Junction_ABSTRACT_H___
#define _OPER_Junction_ABSTRACT_H___

#include "FITK_Kernel/FITKCore/FITKActionOperator.h"
#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h"
#include "OperatorsInterfaceAPI.h"

namespace Acoustics
{
    class FITKJunctionManager;
}

namespace EventOper
{
    /**
     * @brief  连接操作器抽象类
     * @author wangning (2185896382@qq.com)
     * @date 2024-12-25
     */
    class OperatorsInterfaceAPI OperAbstractJunction : public Core::FITKActionOperator
    {
    public:
        OperAbstractJunction();
        virtual ~OperAbstractJunction() = 0;
        /**
         * @brief 编辑连接
         * @param[i]  junID           连接对象id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void editJunction(const int junID);
        /**
         * @brief 删除连接
         * @param[i]  junID          连接对象id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void removeJunction(const int junID);
        /**
         * @brief 批量设置属性
         * @param[i]  name           属性名
         * @param[i]  currentText    当前值
         * @param[i]  attrIndex      属性索引
         * @param[i]  junIDs        连接对象id
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-05
         */
        virtual void setAttribute(const QString &name, const QString& currentText, const int attrIndex, const QList<int> & junIDs);
    protected:
        /**
         * @brief  连接管理器
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        Acoustics::FITKJunctionManager* _junMgr{};

    };
}


#endif